/*********************************************************************
	Rhapsody	: 7.5 
	Login		: kbe
	Component	: DefaultComponent 
	Configuration 	: CodeConfig
	Model Element	: ThreadPool
//!	Generated Date	: Thu, 27, Sep 2012  
	File Path	: DefaultComponent\CodeConfig\ThreadPool.h
*********************************************************************/

#ifndef ThreadPool_H
#define ThreadPool_H

//#[ ignore
#ifdef _MSC_VER
// disable Microsoft compiler warning (debug information truncated)
#pragma warning(disable: 4786)
#endif
//#]

//## auto_generated
#include <oxf\oxf.h>
//## auto_generated
#include <string>
//## auto_generated
#include <algorithm>
//## auto_generated
#include "SOCK_WrapperFacade.h"
//## auto_generated
#include "Default.h"
//## operation ThreadPool(Reactor*)
class Reactor;

//## package Default

//## class ThreadPool
class ThreadPool {
    ////    Constructors and destructors    ////
    
public :

    //## operation ThreadPool(Reactor*)
    ThreadPool(Reactor* reactor);
    
    //## auto_generated
    ThreadPool();
    
    //## auto_generated
    ~ThreadPool();
    
    ////    Operations    ////
    
    //## operation deactivateHandle(HANDLE,Event_Type)
    void deactivateHandle(HANDLE h, Event_Type& et);
    
    //## operation join(int)
    void join(int timeout);
    
    //## operation promoteNewLeader()
    void promoteNewLeader();
    
    //## operation reactivateHandle(HANDLE,Event_Type)
    void reactivateHandle(HANDLE h, Event_Type& et);
    
    ////    Additional operations    ////
    
    //## auto_generated
    Reactor* getItsReactor() const;

protected :

    //## auto_generated
    void cleanUpRelations();
    
    ////    Relations and components    ////
    
    Reactor* itsReactor;		//## link itsReactor
};

#endif
/*********************************************************************
	File Path	: DefaultComponent\CodeConfig\ThreadPool.h
*********************************************************************/
